package org.example.util;

import java.io.IOException;
import java.io.InputStream;
import java.sql.*;
import java.util.Properties;

/**
 * JDBC工具类，用于管理数据库连接和资源释放。
 */
public class jdbcUtil {
    private static final String JDBC_URL = "jdbc:mysql://localhost:3306/java_ex";
    private static final String JDBC_USER = "root";
    private static final String JDBC_PASSWORD = "040331";

    static {
        try {
            // 加载MySQL驱动
            Class.forName("com.mysql.cj.jdbc.Driver");
        } catch (ClassNotFoundException e) {
            // 抛出运行时异常，如果找不到驱动类
            throw new RuntimeException(e);
        }
    }

    /**
     * 获取数据库连接。
     *
     * @return 数据库连接对象。
     */
    public static Connection getConnection() {
        Connection connection = null;
        try {
            // 创建数据库连接
            connection = DriverManager.getConnection(JDBC_URL, JDBC_USER, JDBC_PASSWORD);
        } catch (SQLException throwable) {
            // 处理SQL异常
            throwable.printStackTrace();
        }
        return connection;
    }

    /**
     * 释放数据库资源，包括连接、语句和结果集。
     *
     * @param connection 数据库连接对象。
     * @param statement  SQL语句执行对象。
     * @param resultSet  查询结果集对象。
     */
    public static void release(Connection connection, Statement statement, ResultSet resultSet) {
        try {
            // 关闭连接
            if (connection != null) {
                connection.close();
            }
            // 关闭语句
            if (statement != null) {
                statement.close();
            }
            // 关闭结果集
            if (resultSet != null) {
                resultSet.close();
            }
        } catch (SQLException e) {
            // 抛出运行时异常，如果关闭资源时发生SQL异常
            throw new RuntimeException(e);
        }
    }
}
